7.3 Configuring the Self-Service Request Portal for external identity providers

You configure the identity providers for SSRP by editing the myid.production.json file in the website folder, which is an override for the myid.json configuration file. There is a separate myid.json file for each website folder; by default, SSRP for client certificate-based derived credentials, and SSRPOID for OpenID Connect derived credentials.

Note: As updating or upgrading MyID overwrites the myid.json configuration files, you are recommended to make all of your customizations in a myid.production.json file, which is an override file for the myid.json file. If you do not have a myid.production.json file in the same folder as the myid.json file, you can make a copy of the myid.json file and rename it to myid.production.json. If there is an entry in the Providers array with the same Name attribute in both the myid.json and myid.production.json file, the entry in the myid.production.json file takes precedence.

The myid.production.json file defines each potential identity provider within that overall identity provider type from which SSRP can create the new credential. The file contains the URLs and data for authentication with external authentication providers, and the mappings from the claims to the database.

You can include multiple providers in a single myid.production.json file if the providers are all the same type; for example, you can include multiple OpenID Connect providers in the same file. You cannot include a client certificate-based provider in the same myid.production.json file as OpenID Connect providers.

The default location of the myid.json file (and myid.prodution.json) for OpenID Connect is:

C:\Program Files\Intercede\MyID\SSRP\SSRPOID

By default, the myid.json file contains a copy of the myid.json file from the SSRP folder. You must copy this into a myid.production.json file, then edit this file to remove the client certificate-based provider (with a Name of SSL and a Type of ssl) and configure the file for OpenID Connect authentication.

The format of the myid.production.json is:

Copy
{
  "Providers": [
    {
      "Name": "<The internally used name for the identity provider>",
      "DisplayName": "Text displayed to the user",
      "Url": "<URL of OpenID provider>",
      "Icon": "<path to icon>",
      "Enabled": true,
      "Type": "oid",
      "Default": true,
      "Scopes": "openid email profile",
      "RequiredAudience": "<Required Audience of the JWT>",
      "RequiredIssuer": "<Required Issuer of the JWT>",
      "ClientId": "<Client ID>",
      "ClientSecret": "<Client Secret>",
      "RetrieveUserInfo": true,
      "Mappings": [
        {
          "Match": {
            "<Type of Claim>": "<Required Value of Claim>"
          },
          "Attributes": [
            {
              "From": "preferred_username",
              "To": "Email",
              "Mandatory": false,
              "Default": "",
              "Static": "",
              "Unique": true,
              "Update": false,
              "LdapSync": true
            },
            {
              "From": "",
              "To": "Roles",
              "Static": "<role name='Derived Credential Owner' scope='1'/><role name='Cardholder' scope='1'/>"
            },
            {
              "From": "",
              "To": "GroupName",
              "Static": "Imported From Google"
            }
          ]
        }
      ]
    }
  ]
}

Note: When editing the appsettings.Production.json file on your own system, make sure you replace any placeholders with the appropriate values for your system.

Each provider within the Providers array can contain:

For a sample myid.production.json file containing configuration for Microsoft Entra, see section 7.4, Sample configuration for Entra.

7.3.1 Encrypting the client secret

To encrypt the client secret, log in to the server with the MyID Web Service account and DPAPI encrypt the secret.

  1. On the web server where your SSRP web service is located, log in to the server with the MyID Web Service account.

    To confirm which account to use, check the settings for the SSRPPool application pool in IIS. You must log in with the same account used to run the web service, or the web service will be unable to decrypt the client secret.

  2. Open a Windows PowerShell command prompt, and navigate to the folder where myid.production.json is located.

  3. Run the following PowerShell script:

    .\DPAPIEncrypt.ps1 <secret>

    where:

    • <secret> is the client secret from when you configured your OpenID Connect provider.

    For example:

    .\DPAPIEncrypt.ps1 b5989015-bb9e-4533-874b-2b4a6a8280ed

    The script outputs an encrypted copy of the secret; for example:

    PS C:\Program Files\Intercede\MyID\SSRP\SSRP> .\DPAPIEncrypt.ps1 b5989015-bb9e-4533-874b-2b4a6a8280ed

    AQAAANCMnd8BFdERjHoAwE/C [...] JwWwaKXWoS3i+ulxtmjVQyudpQ==

    (Encrypted output string truncated for documentation purposes.)

  4. Copy the encrypted secret, and paste it into the ClientSecret property of the myid.production.json file.